package com.xuanwei.dao.entity;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.IdType;

import java.time.LocalDate;

import com.baomidou.mybatisplus.annotation.TableId;

import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;

import java.io.Serializable;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 优惠券
 * </p>
 *
 * @author mjy
 * @since 2019-08-19
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class XwCoupon implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 优惠券名称
     */
    @TableField("title")
    private String title;

    /**
     * 优惠券类型 0满减型 1无门栏
     */
    @TableField("type")
    private Integer type;

    /**
     * 优惠券类型 0无限制 1限制活动  2限制商品
     */
    @TableField("limit_type")
    private Integer limitType;

    /**
     * 活动ID或商品ID
     */
    @TableField("obj_id")
    private Integer objId;

    /**
     * 优惠券金额
     */
    @TableField("amount")
    private BigDecimal amount;

    /**
     * 门栏金额
     */
    @TableField("condition_amount")
    private BigDecimal conditionAmount;

    /**
     * 过期类型 0自定义时间 1领取后时间
     */
    @TableField("expire_type")
    private Integer expireType;

    /**
     * 领取时间多少天后过期
     */
    @TableField("expire_days")
    private Integer expireDays;

    /**
     * 开始时间
     */
    @TableField("expire_start_time")
    private LocalDate expireStartTime;

    /**
     * 结束时间
     */
    @TableField("expire_end_time")
    private LocalDate expireEndTime;

    /**
     * 说明
     */
    @TableField("explain_text")
    private String explainText;

    /**
     * 发放总量
     */
    @TableField("limit_send_total")
    private Integer limitSendTotal;

    /**
     * 每人限制领取
     */
    @TableField("limit_pre")
    private Integer limitPre;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 0正常1作废
     */
    @TableField("status")
    private Integer status;

    /**
     * 删除标志0正常1
     */
    @TableField("delete_flag")
    @TableLogic
    private Integer deleteFlag;



}
